A traditional view of virtualization involves executing one or more virtual machines on a server, with each virtual machine running one or more applications. Often, each application is presented with its own operating environment via a dedicated virtual machine. The virtual machines that execute on a computing system prevent conflicts between applications as well as between applications and an operating system.
Virtual machines alleviate some of the compatibility problems between applications and associated libraries and drivers, but because of their complexity may require additional maintenance from IT personnel. Not only is there the base operating system to be maintained, but also the infrastructure of the virtual machines and potentially incompatible programs.